load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library")

oncall("fboss_agent_push")

bcm_test_platforms_common_srcs = [
    "BcmTestPort.cpp",
    "BcmTestPlatform.cpp",
    "BcmTestWedgePlatform.cpp",
    "BcmTestWedge100Platform.cpp",
    "BcmTestWedge100Port.cpp",
    "BcmTestWedge400Platform.cpp",
    "BcmTestWedge400Port.cpp",
    "BcmTestDarwinPlatform.cpp",
    "BcmTestDarwinPort.cpp",
    "BcmTestMinipackPlatform.cpp",
    "BcmTestMinipackPort.cpp",
    "BcmTestYampPlatform.cpp",
    "BcmTestYampPort.cpp",
    "FakeBcmTestPlatform.cpp",
    "FakeBcmTestPort.cpp",
    "CreateTestPlatform.cpp",
    "BcmTestTomahawk4Platform.cpp",
    "BcmTestFujiPlatform.cpp",
    "BcmTestFujiPort.cpp",
    "BcmTestElbertPlatform.cpp",
    "BcmTestElbertPort.cpp",
]

cpp_library(
    name = "bcm_test_platforms",
    srcs = bcm_test_platforms_common_srcs + [
        "BcmTestWedgeTomahawk3Platform.cpp",
        "BcmTestWedgeTomahawkPlatform.cpp",
        "FakeBcmTestPlatform.cpp",
    ],
    exported_deps = [
        ":test_platform_types",
        "//fboss/agent:fboss-error",
        "//fboss/agent:fboss-types",
        "//fboss/agent:handler",
        "//fboss/agent:switch_config-cpp2-types",
        "//fboss/agent/hw/bcm:bcm",
        "//fboss/agent/hw/switch_asics:switch_asics",
        "//fboss/agent/hw/test:config_factory",
        "//fboss/agent/platforms/common/darwin:darwin_platform_mapping",
        "//fboss/agent/platforms/common/elbert:elbert_platform_mapping",
        "//fboss/agent/platforms/common/fake_test:fake_test_platform_mapping",
        "//fboss/agent/platforms/common/fuji:fuji_platform_mapping",
        "//fboss/agent/platforms/common/minipack:minipack_platform_mapping",
        "//fboss/agent/platforms/common/utils:wedge-led-utils",
        "//fboss/agent/platforms/common/wedge100:wedge100_platform_mapping",
        "//fboss/agent/platforms/common/wedge400:wedge400_platform_mapping",
        "//fboss/agent/platforms/common/yamp:yamp_platform_mapping",
        "//fboss/agent/platforms/wedge/utils:bcm-led-utils",  # @manual
        "//fboss/lib/config:fboss_config_utils",
        "//fboss/lib/fpga/facebook/fuji:fuji_container",
        "//fboss/lib/platforms:product-info",
        "//folly:network_address",
        "//folly/testing:test_util",
    ],
    exported_external_deps = [
        ("boost", None, "boost_container"),
    ],
)

cpp_library(
    name = "fake_bcm_test_platforms",
    srcs = bcm_test_platforms_common_srcs + [
        "BcmTestWedgeTomahawk3Platform.cpp",
        "BcmTestWedgeTomahawkPlatform.cpp",
        "FakeBcmTestPlatform.cpp",
    ],
    exported_deps = [
        ":test_platform_types",
        "//fboss/agent:fboss-error",
        "//fboss/agent:fboss-types",
        "//fboss/agent:handler",
        "//fboss/agent:switch_config-cpp2-types",
        "//fboss/agent/hw/bcm:fake_bcm",  # @manual
        "//fboss/agent/hw/switch_asics:switch_asics",
        "//fboss/agent/hw/test:config_factory",
        "//fboss/agent/platforms/common/darwin:darwin_platform_mapping",
        "//fboss/agent/platforms/common/elbert:elbert_platform_mapping",
        "//fboss/agent/platforms/common/fake_test:fake_test_platform_mapping",
        "//fboss/agent/platforms/common/fuji:fuji_platform_mapping",
        "//fboss/agent/platforms/common/minipack:minipack_platform_mapping",
        "//fboss/agent/platforms/common/utils:wedge-led-utils",
        "//fboss/agent/platforms/common/wedge100:wedge100_platform_mapping",
        "//fboss/agent/platforms/common/wedge400:wedge400_platform_mapping",
        "//fboss/agent/platforms/common/yamp:yamp_platform_mapping",
        "//fboss/agent/platforms/wedge/utils:bcm-led-utils-oss",
        "//fboss/lib/config:fboss_config_utils",
        "//fboss/lib/fpga/facebook/fuji:fuji_container",
        "//fboss/lib/platforms:product-info",
        "//folly:network_address",
        "//folly/testing:test_util",
    ],
    exported_external_deps = [
        ("boost", None, "boost_container"),
    ],
)

cpp_library(
    name = "test_platform_types",
    headers = [
        "TestPlatformTypes.h",
    ],
)
